home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 1 / Gold Medal Software Volume 1 (Gold Medal) (1994).iso / virus / vds30c.arj / VDS.DOC < prev    next >
Text File  |  1993-12-02  |  55KB  |  1,146 lines

  1.                       Virus Detection System 3.0
  2.                          
  3.                            Shareware Release
  4.  
  5.            Copyright (c) 1992-93 by VDS Advanced Research Group
  6.                     
  7.                  P.O. Box 9393, Baltimore, MD 21228, U.S.A.
  8.                               
  9.                           VDS 3.0 User's Guide                                 
  10.                                   
  11.                               12/2/93
  12.                                rev. C
  13.                                 
  14.                               WARNING
  15.  
  16.           THIS SOFTWARE AND MANUAL ARE BOTH PROTECTED BY U.S.
  17.      COPYRIGHT LAW (TITLE 17 UNITED STATES CODE). UNAUTHORIZED
  18.      REPRODUCTION AND/OR SALES MAY RESULT IN IMPRISONMENT OF UP TO
  19.      ONE YEAR AND FINES OF UP TO $10,000 (17 USC 506). COPYRIGHT
  20.      INFRINGERS MAY ALSO BE SUBJECT TO CIVIL LIABILITY.
  21.      
  22.                            
  23.                               DISCLAIMER
  24.  
  25.    The developers of VDS make no warranty of any kind, either express or 
  26. implied, with respect to this software and accompanying documentation.
  27. In no event shall the developers be liable for any damages arising out of
  28. the use of or inability to use the included programs. The entire risk as to
  29. the results and performance of this software package is assumed by the
  30. customer. We specifically disclaim any implied warranties of merchantability
  31. or fitness for any purpose. Use at your own risk.
  32.    
  33.    The developers of VDS reserve the right to revise the software and
  34. accompanying documentation and to make changes in the contents without
  35. obligation to notify any person of such revision or changes.
  36.  
  37.                                 WARNING
  38.                               
  39.    VDS shareware edition may be freely distributed to other individuals by
  40. electronic means such as BBSes. You must keep the archive intact except that
  41. you may add an archive message introducing your BBS. VDS shareware edition
  42. expires at the end of May 1994. We will most likely have an updated copy
  43. long before then. You are allowed to use VDS shareware edition at home as
  44. long as you wish. If you register it, you will get the complete Pro edition.
  45. Organizations and companies may use VDS shareware edition to evaluate its
  46. effectiveness. We allow 30 days for such evaluation, after which you must
  47. remove VDS from your company's computers or get the registered copy for a
  48. very reasonable site license fee.   
  49.           
  50.  
  51.                               Table of Contents
  52.                                   
  53. I. Introduction
  54.    1. Description
  55.    2. Components
  56.    3. System Requirements
  57.    4. Command Line Options
  58.       
  59. II. Installation
  60.    1. On stand-alone PCs      
  61.    2. Installing VDS 3.0 in Novell Netware(tm) Environments
  62.          a. Protecting Programs On The File Server
  63.          b. Installing VDS On Workstations From The Server
  64.          c. Using The Network Emergency Diskette 
  65.          d. Known Problems 
  66.    3. Uninstall
  67.    4. Configuration (VDS30.INI)      
  68.       
  69. III. Operational Overview
  70.    1. Scanning
  71.    2. Integrity Checking
  72.    3. Real-time Anti-virus Protection
  73.                                                                                        
  74. IV. Viruses Explained
  75.    1. Description
  76.    2. Features
  77.          a. Stealth Virus
  78.          b. Dumb Virus
  79.          c. Encryptive Virus
  80.          d. Polymorphic Virus           
  81.          e. Multi-partite Virus
  82.    3. Types
  83.          a. MBR/BR Virus
  84.          b. Program Infector
  85.                Simple Infector
  86.                Companion Virus
  87.                System Infector                                                   
  88.                   
  89. --------------------------------------------------------------------------
  90. I. Introduction
  91. ---------------
  92.       
  93.    This chapter introduces the VDS anti-virus software, and provides an 
  94. overview of requirements to install and run the programs in the package.   
  95.       
  96. 1. Description
  97.  
  98.    VDS is a set of programs designed to contain the spread of PC viruses by
  99. providing early detection and easy removal. By using sophisticated methods,
  100. VDS can handle new stealth, dumb, and polymorphic viruses as easily as 
  101. the old ones. It works on stand-alone computers as well as LAN workstations.
  102. It can protect LAN file servers by performing scans and integrity checks.
  103.  
  104.    NOTE: The shareware release of VDS is intended to allow potential customers
  105. to test its operation and make an informed decision about buying VDS as their
  106. choice of protection against PC viruses. If you would like to obtain the
  107. full package (VDS Pro), then you must fill out and send in the registration
  108. form with your payment. The registration fee is only $19 (U.S.). The 
  109. professional release includes a state-of-the-art real-time anti-virus tool
  110. and many other features to give you a formidable anti-virus defense mechanism.
  111. VDS outperforms other commercial and shareware anti-virus packages not only
  112. by its operational speed and robustness but also by its ease of use. Its
  113. user interface shifts the emphasis from actions buried under many levels of
  114. menus to objects such as drives and directories. Compare it to the sexiest-
  115. looking anti-virus package out there and see which one is more functional.
  116. Site licenses are available. You get the following by registering VDS 3.0:
  117.  
  118.    - A set of diskettes with the latest copy of VDS Pro 3.0.
  119.    - A more comprehensive and detailed reference manual.
  120.    - VDSTSR for memory-resident scanning to prevent viruses from getting 
  121.      into your system in the first place.
  122.    - ISVDSTSR for better network support and LAN access control.
  123.    - DUMPSIG to extract signatures from viruses you might capture. The
  124.      professional release has the capability to use an external signature
  125.      file to allow you to add your own signatures.
  126.    - VDS integrity checker can catalog up to 32 instead of 10 levels.
  127.    - A copy of our "Polymorphic Engines" paper exposing this latest trend
  128.      in virus development.
  129.    - Our gratitude and thanks for your support.
  130.  
  131. 2. Components
  132.  
  133.    VDS package includes the following components:
  134.  
  135. VDS.EXE
  136.    - A known and heuristic virus scanner that searches for patterns or code
  137.      sequences and uses advanced algorithms to identify polymorphic and simple
  138.      viruses inside executable code such as program files and boot sectors.
  139.           
  140. VDS.EXE 
  141.    - An integrity checker that creates a fingerprint database for possible
  142.      virus targets (programs, boot sectors) and verifies them later for 
  143.      suspicious modifications. In the case of such modifications, the 
  144.      integrity checker offers to restore affected areas to their original 
  145.      state by using generic disinfection techniques, and backups (for system
  146.      areas). If the restoration attemt is futile, the integrity checker
  147.      informs the user and requests permission to remove the damaged object
  148.      by deletion. For example, some overwriting viruses do not preserve the
  149.      functionality of their victims. To be able to restore such programs,
  150.      one needs to use the original copies or good backups. In 95% of the
  151.      cases that involve a virus that can successfully spread, restoration
  152.      by generic disinfection is possible, and guarantees 100% recovery. 
  153.      Viruses that corrupt the operation of their victims get noticed easily
  154.      and do not tend to get too far.
  155.      
  156. VDSTSR.EXE (not available in the shareware release)
  157.    - A memory-resident (TSR) program that searches programs before execution
  158.      or optionally before they are copied. It also examines the boot sector
  159.      of floppy diskettes that may have been left in drive A: before warmboot 
  160.      attempts. What's more, it can scan programs being unzipped or 
  161.      de-archived by a compression utility regardless of the version or the 
  162.      maker of such software. In other words, you do not need to update the 
  163.      TSR just because you decided to use a newer release of your favorite
  164.      file compression utility.
  165.    
  166. ISVDSTSR.COM (not available in the shareware release)
  167.    - A small (17 bytes) program that sets the DOS errorlevel to indicate the
  168.      presence of the TSR component in memory. The purpose of this program is
  169.      to allow system administrators in networked environments to enforce
  170.      loading TSR anti-virus protection on workstations before they are 
  171.      permitted to access programs on a file server.
  172.  
  173. DUMPSIG.EXE (not available in the shareware release)
  174.    - A virus signature extraction utility.
  175.   
  176. VITALFIX.EXE
  177.    - A disk repair utility designed specifically to deal with boot sector
  178.      infections. It provides the user with various options to eradicate a
  179.      possible virus, to save and to restore important system information such
  180.      as the partition table, and to search disks for a possibly relocated
  181.      copy of the boot sector. It is much safer to use this utility than
  182.      other disk sector editors since it performs "sanity" checks before
  183.      overwriting important sectors.
  184.  
  185. INSTALL.EXE
  186.    - An installation program that automates loading VDS on local
  187.      and on network drives. It prepares an "emergency diskette" for your
  188.      computer so that you can check and restore system areas and program
  189.      files after booting from a clean floppy diskette. This emergency
  190.      diskette is formatted as a bootable DOS diskette and the required VDS
  191.      components and fingerprint and recovery information are copied over.
  192.  
  193. VDSCATCH.BIN     
  194.    - A device driver that implements several anti-stealth features and aids
  195.      VDS integrity checker in maintaining reliable operation even when
  196.      a stealth virus is active in memory. It also prohibits direct writes
  197.      to the master and DOS boot sectors as well as low-level format attempts.
  198.         
  199. 3. System Requirements
  200.  
  201.    VDS has the following minimum requirements to operate correctly:
  202.    
  203.    - An IBM PC or compatible computer
  204.    - MS/PC-DOS 3.0 or later
  205.    - 420K of free memory
  206.    - A hard drive (only for integrity checker)
  207.    - Up to 4000 program files per integrity database (16000 if XMS is available)
  208.    - 192K extended memory is recommended but not required
  209.    - Up to 10 integrity databases
  210.  
  211.    In addition, VDSTSR takes up about 28K of memory when loaded. It can be
  212. loaded into upper memory area under DOS 5.0 or later. VDSCATCH.BIN device
  213. driver takes up about 360 bytes, and it can also be loaded high.
  214.  
  215.    Some systems utilize disk compression software that increases the storage
  216. capacity of drives by compressing and decompressing data on the fly. You
  217. must have the necessary device drivers loaded before VDS. MS-DOS 6.0
  218. now includes this feature by providing DoubleSpace(tm) interface. The 
  219. operation of DoubleSpace is well-integrated into DOS, and works in a
  220. transparent manner. VDS is tested and found to work as expected on
  221. drives compressed using DoubleSpace.
  222.  
  223. 4. Command Line Options
  224.  
  225.    Most of the programs in the VDS package offer a variety of command
  226. line options to customize their operation to suit your needs. Here is a
  227. list of VDS components and their respective command line options:
  228.  
  229. VDS.EXE  [{-|/}BIRDSUVX]  [Drive: | Path]  [{-|/}C<filepath>] [{-|/}X<filepath>]
  230.    
  231.       -Batch       Check the system areas and the files depending on 
  232.                    frequency. This option is the default used during Express
  233.                    installation. It must be followed by a drive letter.
  234.                  
  235.       -Init        Create fingerprint database for the system areas and the
  236.                    files for a given drive. This option is used by INSTALL
  237.                    program to start VDS during installation. It must be 
  238.                    followed by a drive letter.
  239.       
  240.       -Disks C: D: Process the drives listed. Must specify at least one.
  241.  
  242.       -Rescue      Use the emergency diskette to check the specified drive.
  243.       
  244.       -Scan        Perform virus scanning on the specified drive or path.
  245.  
  246.       -UMB         Scan upper memory blocks as well as the base memory.
  247.       
  248.       -Verify      Perform integrity checking on the specified drive or path.
  249.  
  250.       -C<filepath> Use the specified configuration file.
  251.       
  252.       -X<filepath> Use the specified external signature file, not XTERNAL.SIG.
  253.       
  254.    Examples:
  255.       
  256.       To check drive C: for modifications using a non-default configuration
  257.       file, you can type the following:
  258.       
  259.          VDS -V  C: -Cc:\integ\vds30.ini
  260.       
  261.       To check drive C: using the emergency diskette, you can type the 
  262.       following:
  263.       
  264.          VDS -R  C:
  265.          
  266.       To scan DOS directory for viruses, type the following:
  267.       
  268.          VDS -S  C:\DOS
  269.       
  270.       To scan drives C: and D: for viruses, type the following:
  271.       
  272.          VDS -S -D C: D:
  273.          
  274.       To perform automatic integrity checks, you can include the following 
  275.       line in your AUTOEXEC.BAT
  276.       
  277.          VDS -B  C:
  278.          
  279.    VDSTSR.EXE  [{-|/}C]
  280.  
  281.       To load VDSTSR high and scan programs during execution and copy 
  282.       operations, as well as when they are unzipped:
  283.  
  284.          LH  VDSTSR.EXE  /C         
  285.          
  286.    INSTALL.EXE  [{-|/}UNEX]  [source_path]  [destination_path]
  287.  
  288.       To install VDS down from a file server onto the hard disk on 
  289.       a workstation:
  290.       
  291.          INSTALL  -N  F:\VDS30  C:\VDS30
  292.  
  293.       To prepare an emergency diskette for drive C: because it got lost:
  294.       
  295.          INSTALL  -E  C:\VDS30
  296.       
  297.       To uninstall VDS from your hard drive:
  298.       
  299.          INSTALL  -U  C:\VDS30
  300.  
  301.    DUMPSIG.EXE  <filename>
  302.    
  303.       To extract bytes from the program entry point:
  304.       
  305.          DUMPSIG  sample.exe > nasty.vir
  306.  
  307. II. Installation
  308. ----------------
  309.    
  310.    You will need your bootable DOS diskette (preferably the original), VDS 
  311. Distribution diskette, and at least one blank floppy diskette that can go in 
  312. your drive A: for installation. The blank diskette will be formatted and 
  313. prepared as a bootable DOS diskette by VDS. The emergency diskette will be 
  314. used in the case of infections that affect the master boot/partition sector 
  315. or MBR (if VDS cannot repair it on the fly). 
  316.    
  317.    The floppy restoration process requires you to use this VDS emergency 
  318. diskette. Some computers have a boot sequence setting in CMOS that allows 
  319. booting from the hard disk even if there is a floppy diskette in drive A:. 
  320. Before starting the installation, please change this setting to boot from 
  321. drive A:.
  322.    
  323. 1. Installing VDS On Stand-alone PCs      
  324.  
  325. 1) Turn off the computer (NOTE: It is very important that you do not perform 
  326.    a warmboot by holding down Ctrl-Alt-Del keys since it is possible for a 
  327.    virus to "fake" a warmboot and stay in memory).
  328.  
  329. 2) Put the DOS diskette in drive A: (NOTE: The version of DOS on the floppy 
  330.    diskette must be the same as the one installed on your hard drive).
  331.  
  332. 3) If the boot was successful, you should now see the "A:>" prompt. If the 
  333.    system asks you for time and date, just press "Enter" or "Return" until 
  334.    you are at the "A:>" prompt.
  335.  
  336. 4) Remove the DOS diskette and replace it with the VDS distribution diskette.
  337.  
  338. 5) Type A:\INSTALL and press "Enter" or "Return."
  339.  
  340. *  INSTALL will now complete the installation process by asking you a few 
  341.    questions.
  342.  
  343. 6) You will see two options: Express setup and custom setup. If you press the
  344.    "Enter" key, INSTALL will use the default settings to configure the 
  345.    operation of VDS. Custom setup allows you to modify many parameters to 
  346.    suit your needs.
  347.  
  348. *  From this point on, we will assume you have chosen express setup. Custom 
  349.    setup is explained in the VDS manual.
  350.  
  351. 7) A configuration file will be created and the necessary files will be 
  352.    transferred to the hard disk in C:\VDS30 directory.
  353.  
  354. 8) If this is the first time you are installing VDS on your computer, INSTALL 
  355.    will modify  your AUTOEXEC.BAT and CONFIG.SYS to add the necessary lines 
  356.    to load VDSCATCH.BIN, VDSTSR.EXE and run VDS.EXE every time you reboot the
  357.    computer. VDSCATCH.BIN takes up only a few hundred bytes.
  358.  
  359. 9) You will next see the list of files on the hard drive scroll by as VDS 
  360.    scans for infections and creates the baseline profile of all executable 
  361.    files on the disk. There should be lots of disk activity. You can actually
  362.    observe this by looking at the drive light, or you should hear the disk 
  363.    head move around. If VDS finds that there are infected files, you will be 
  364.    asked if VDS should remove them. 
  365.  
  366. 10) INSTALL will ask you if you would like to prepare an emergency diskette. 
  367.    Put a blank diskette in drive A:. MAKE SURE YOU DO NOT HAVE ANYTHING YOU 
  368.    NEED ON THIS DISKETTE. It will be formatted as a bootable DOS diskette.
  369.  
  370. 11) You can write-protect the emergency diskette at this time and store it 
  371.    in a convenient location. INSTALL will inform you that the computer will 
  372.    restart, please remove any floppy diskettes and then press a key. If VDS 
  373.    is installed correctly, you will see it verify the complete system. This 
  374.    completes the install process (if you enabled floppy booting in CMOS 
  375.    previously, you can change it back to the hard disk now).
  376.  
  377. 2. Installing VDS 3.0 On Novell Netware(tm) LAN Servers
  378.  
  379.    You can use VDS 3.0 to protect your Novell Netware servers against PC 
  380. viruses by establishing an integrity database for programs on the server as 
  381. well as performing periodic virus  scans. To be able to take advantage of the
  382. powerful integrity checker built into VDS, you must first install it on 
  383. the server and prepare a VDS Network Emergency Disk. 
  384.    
  385.    You can also install VDS on workstations without having to go to each 
  386. workstation: Simply install it down from the file server as the users login. 
  387. This process is also explained in this document. When we refer to Netware, it
  388. is implied that the version is 2.2 or 3.x.
  389.  
  390. a. Protecting Programs On The File Server
  391.  
  392.    This section describes how to install VDS on a Netware file server and 
  393. explains what is involved in preparing a network emergency disk.
  394.  
  395. 1. Log into the server as SUPERVISOR. Map one drive letter to each separate 
  396.    volume you wish to protect. Do not use MAP ROOT command. Suppose we have 
  397.    a server named SMART with two volumes: SYS and APPS.
  398.  
  399.           MAP  F := SMART/SYS:
  400.           MAP  G := SMART/APPS:
  401.    
  402. 2. We wish to put VDS in its own home directory on the SYS volume. Create
  403.    a home directory for VDS on the server, and map it to a drive letter.
  404.          
  405.           MD  F:\VDS30
  406.           MAP H:=SMART/SYS:VDS30
  407.    
  408. 2. Put VDS distribution diskette in drive A: (or B:)
  409.    
  410. 3. At the DOS prompt, type:
  411.          
  412.           A:INSTALL   <enter>
  413.    
  414. 4. When INSTALL asks you for the method of installation, choose CUSTOM.
  415.    
  416. 5. Press <enter> to accept the default source directory (A:\ or B:\).
  417.    
  418. 6. Enter a directory such as F:\VDS30 as VDS home directory.  
  419.    F: drive refers to the server that you logged into. This directory 
  420.    should be accessible only to the SUPERVISOR (or equivalent). By not 
  421.    allowing anyone else to access this directory, you can reduce the risk 
  422.    of getting VDS files infected by network users.
  423.       
  424. 7. INSTALL will start copying the necessary files and it will offer you a 
  425.    list of drive letters currently available. Answer YES to F: and any 
  426.    other drive letter mapped to a different volume on the server. We picked
  427.    F: and G: drives. Note that if more than one drive letter is mapped to
  428.    different subdirectories on the same volume, you need to protect only 
  429.    one drive. VDS is a Netware-aware application and it processes the 
  430.    complete volume regardless of the drive letter. You can also attach to 
  431.    multiple file servers. VDS will automatically check which server 
  432.    each drive letter refers to by consulting the Netware shell server name 
  433.    table and the drive connection ID table.
  434.                                                          
  435. 8. INSTALL will run VDS to scan the selected drives and initialize an 
  436.    integrity and recovery database for each one.
  437.       
  438. 9. After initialization, INSTALL will ask you if you wish to prepare an 
  439.    emergency diskette. Get a blank high density floppy diskette that will 
  440.    fit in your A: drive. Let INSTALL format it for you. INSTALL will back 
  441.    up the integrity database(s) to the floppy disk for off-line integrity 
  442.    checks and emergency recovery.
  443.       
  444. 10. Once the emergency diskette is prepared, INSTALL will inform you that 
  445.    it has completed its operation and return you to the DOS prompt.
  446.      
  447. 11. Copy the necessary login files to the emergency diskette. If you ever 
  448.    suspect a virus infection on your server, you will need to boot from the
  449.    emergency diskette and login using the programs on this floppy, not the 
  450.    ones on the server. Many system administrators actually help the virus
  451.    spread by logging into the server as SUPERVISOR and running an infected 
  452.    program off of the server. Following is an example list of network files
  453.    you may need to have on this floppy for a clean login:
  454.       
  455.    For ODI workstations:
  456.       
  457.      LSL
  458.      NE2000        (should match your NIC)
  459.      IPXODI
  460.      NETX
  461.      NET.CFG
  462.      LOGIN.EXE
  463.      LOGOUT.EXE
  464.      MAP.EXE
  465.      MYSCRIPT.SCR      
  466.  
  467.    For old-style IPX workstations:
  468.       
  469.      NE2000        (should match your NIC)
  470.      IPX
  471.      NETX
  472.      SHELL.CFG
  473.      LOGIN.EXE
  474.      MAP.EXE 
  475.      LOGOUT.EXE
  476.      MYSCRIPT.SCR
  477.          
  478.    After copying these files to the emergency diskette, edit the 
  479.    A:\AUTOEXEC.BAT to run these programs in the correct order. Refer to 
  480.    your Netware system administrator's guide for details. We used the 
  481.    following in our AUTOEXEC.BAT:
  482.       
  483.      @ECHO OFF
  484.      PROMPT $P$G
  485.      PATH A:\
  486.      SET COMSPEC=A:\COMMAND.COM    
  487.      LSL
  488.      NE2000
  489.      IPXODI
  490.      NETX
  491.      A:
  492.      LOGIN /S A:MYSCRIPT.SCR
  493.          
  494.    In our MYSCRIPT.SCR, we have the following lines:
  495.       
  496.      DRIVE  A:
  497.      MAP  F:=SMART/SYS:
  498.      MAP  G:=SMART/APPS:        
  499.      MAP  H:=SMART/SYS:VDS30
  500.      EXIT ""
  501.          
  502.    IMPORTANT: In the case of an emergency, you should have a login script 
  503.               on the floppy disk and use it to login. Otherwise, the system
  504.               login script gets processed. Note that the EXIT "" command 
  505.               shown above ensures that the user login script  does not get 
  506.               executed. If an infected program is run from the login script,
  507.               it invalidates your efforts to achieve a clean login.
  508.  
  509.    You should map the drive letter you used in Step 2 above to the volume 
  510.    where VDS30 directory is located (not necessarily to that directory) 
  511.    so that the configuration file will be processed correctly.
  512.       
  513.    In our NET.CFG, we have the following:
  514.   
  515.      PREFERRED SERVER = SMART     
  516.      PROTOCOL IPXODI
  517.           BIND NE2000
  518.      LINK DRIVER NE2000
  519.           INT 3
  520.           PORT 360
  521.           FRAME ETHERNET_802.3
  522.  
  523.    Of course, your NET.CFG file will be different to reflect the name of  
  524.    the server and hardware settings. We are presenting this information 
  525.    just to give a concrete example.
  526.  
  527. 12. A prudent step at this point is to check and see if you can actually use 
  528.    this diskette to login and perform an integrity check on the server. 
  529.    Please refer to the next section on how to perform this operation using
  530.    the network emergency diskette. Remove the emergency diskette from drive
  531.    A: and write-protect the diskette. Label it VDS Network Emergency Disk 
  532.    and store it in a convenient location.
  533.  
  534. B. Installing VDS On Workstations From The Server
  535.  
  536.    This section describes the procedure to set up VDS on your file server
  537. so that it gets installed on each workstation upon login. You do not need to 
  538. go to each workstation to install VDS. With a little planning, you can 
  539. have every workstation well-protected without ever having to leave your desk.
  540.    
  541. 1. Log into the server as SUPERVISOR. 
  542.    
  543. 2. Create a subdirectory that is accessible to all users on the server.
  544.  
  545.       IMPORTANT: You CANNOT use the same VDS directory that is created
  546.                  above to protect the file server. The configuration files 
  547.                  are different.
  548.          
  549.           MD  F:\VDS30
  550.          
  551. 3. Copy the following files from the VDS emergency diskette to this 
  552.    directory.
  553.     
  554.           INSTALL.EXE
  555.           VDS.EXE
  556.           VDSTSR.EXE
  557.           ISVDSTSR.COM
  558.           VDS30.INI
  559.           AV-INST.BAT   
  560.       
  561. 4. Edit VDS30.INI to suit your needs. 
  562.    
  563. 5. Edit AV-INST.BAT to match the directory name if you used something other 
  564.    than VDS30. Even if you do not wish to modify AV-INST.BAT, please study 
  565.    it to understand what it is doing. Here it is:
  566.  
  567.      @ECHO OFF
  568.      rem                   AV-INST.BAT
  569.      rem This is a sample batch file that can be used to install VDS 3.0
  570.      rem on local workstations as they log into the network server.
  571.      rem It also loads the VDSTSR if it is not active.
  572.  
  573.      rem The system administrator should place VDS PRO 3.0 files in a common
  574.      rem directory on the file server. This batch file should also be placed
  575.      rem in the same directory. All files should be flagged as Shareable.
  576.      rem Users should be able to search and read files in this directory. In
  577.      rem the system login script (or equivalent), a drive letter should be
  578.      rem mapped to this directory. We use J: here.
  579.  
  580.      rem After that, the batch file should be invoked. Please consult your
  581.      rem network administrator's guide for detailed instructions.
  582.  
  583.      rem For example, Netware system login script would contain:
  584.  
  585.      rem    MAP  J:=MYSERVER/SYS:APPS\VDS30
  586.      rem    #command  /c  J:AV-INST.BAT
  587.  
  588.      rem *******************************************************************
  589.  
  590.      rem System administrator mapped VDS 3.0 directory to J: drive
  591.  
  592.      J:
  593.  
  594.      rem If VDS was already installed, then do nothing
  595.  
  596.      IF EXIST C:\VDS30\VDS.EXE  GOTO  DONE
  597.  
  598.      echo A new anti-virus package will be installed on your workstation.
  599.      echo This will take only a few minutes. Please be patient.
  600.  
  601.      PAUSE
  602.      J:INSTALL.EXE  -N  J:\VDS30  C:\VDS30
  603.      CLS
  604.  
  605.      :DONE
  606.  
  607.      rem Check and see if VDSTSR is loaded on the workstation
  608.  
  609.      J:ISVDSTSR.COM
  610.      IF ERRORLEVEL = 1  GOTO  FINISH
  611.  
  612.      echo You have not loaded VDSTSR anti-virus on your workstation.
  613.      echo To protect the LAN, we do not allow access until VDSTSR is loaded.
  614.      echo Please contact the system manager if you need help.
  615.  
  616.      rem Since it was not loaded, we will load the VDSTSR now
  617.  
  618.      LH  J:VDSTSR.EXE
  619.  
  620.      :FINISH
  621.  
  622.      rem Change back to the original drive (H: in our case)
  623.  
  624.      H:
  625.  
  626. 6. Mark all files in VDS30 as READONLY and SHAREABLE.
  627.  
  628.           FLAG  F:\VDS30\*.*  ros
  629.  
  630. 7. Use SYSCON to make the group EVERYONE a trustee of the F:\VDS30 
  631.    directory. Assign only READ and FILE SCAN rights. 
  632.       
  633. 8. While still in SYSCON, edit the system login script to invoke the 
  634.    AV-INST.BAT file.
  635.       
  636.           #COMMAND  /C  F:\VDS30\AV-INST.BAT  
  637.          
  638. 9. Now you are ready to test if the installation will proceed as planned. 
  639.    Go to a workstation that does not yet have VDS installed. Login as 
  640.    GUEST, not SUPERVISOR. GUEST should have no more rights than the members
  641.    of the group EVERYONE. INSTALL should download the VDS onto the 
  642.    workstation's hard disk and configure it automatically. No user 
  643.    intervention except for pressing a key a few times is required.
  644.       
  645. 10. If you encounter any problems, go back and check each step above.
  646.  
  647. C. Using The Network Emergency Diskette
  648.  
  649.    This procedure may be necessary in the case of a suspected infection of the 
  650. programs on the LAN server, or for the purpose of checking for corruption of 
  651. program files. At any rate, it is vital that you understand how to perform a 
  652. clean boot from the network emergency diskette and gain access to the server 
  653. without running any programs off of the server. This might sound a bit 
  654. unusual first. However, it is a fact that most virus incidents in networked 
  655. environments are made worse because the SUPERVISOR logs in to the server to 
  656. check things out. As soon as the SUPERVISOR runs an infected program either 
  657. from the workstation's hard disk or the server, the virus may load itself 
  658. into memory and spread infection as the supervisor accesses programs on the 
  659. server or it may infect other workstations as users login. Remember one thing:
  660. If you inadvertently run an infected program, it will have the same access 
  661. privileges as the  SUPERVISOR on the file server! On the other hand, you can 
  662. easily isolate the problem and contain the virus spread by following a few 
  663. simple steps.
  664.  
  665.      IMPORTANT: If you suspect a virus infection on your file server, you 
  666.                 should ask users to log out and disable any further logins. 
  667.                 This will save you many hours of clean-up work later. The 
  668.                 most difficult part of handling virus incidents in LAN 
  669.                 environments is preventing reintroduction of the virus from 
  670.                 the workstations to the file server. Even if you do a full 
  671.                 restore from tape, the virus might come back because the 
  672.                 workstations are not clean and some programs on the server 
  673.                 are not protected.
  674.  
  675. 1. Go to the workstation you have used to prepare the VDS Network Emergency 
  676.    Disk.
  677.    
  678. 2. Insert this diskette in drive A: and reboot (coldboot) the computer.
  679.     
  680. 3. If you modified the AUTOEXEC.BAT as shown in section A, then you should 
  681.    see the familiar Netware login prompt asking for your login name. If not,
  682.    run the workstation programs to establish a network connection, and run 
  683.    LOGIN from drive A: (not the server).
  684.       
  685. 4. After entering your name and password, map the necessary drive letters to 
  686.    the volumes you are interested in. This step is performed for you if you 
  687.    have set up a MYSCRIPT file as outlined in the previous section. If you 
  688.    are mapping drives manually, make sure that you run the MAP command off 
  689.    of the emergency diskette, not the server.
  690.       
  691. 5. Switch to drive A:, and type VDS <enter>.
  692.    
  693. 6. VDS should come up as usual, launch decoys, check system areas and so on.
  694.    
  695. 7. Once you see the drive letters, highlight the drive mapped to the volume 
  696.    you are interested in checking.
  697.       
  698. 8. Press F4 to perform an integrity check. VDS should go through the files 
  699.    on that volume and provide feedback as it is checking.
  700.  
  701. 9. If there are modified files, VDS will usually offer to restore them 
  702.    for you. For this operation to succeed, you must have sufficient rights to
  703.    those files. For example, if a program file is marked as READONLY, then you
  704.    must have MODIFY right so that VDS can mark the file as WRITABLE before
  705.    it can fix it. If you logged in as SUPERVISOR, this should not be a problem.
  706.    
  707. D. Known Problems
  708.  
  709. 1. You must not mark VDS program files as EXECUTE ONLY (Netware 3.11). 
  710.    They perform self-checks upon activation, and therefore require READ 
  711.    access to their program files. 
  712.    
  713. 2. If you used the MAP ROOT command to establish a "fake" root on the 
  714.    server, VDS will not try to use the actual path to the access files.
  715.    It might report programs located under the fake root as new, although an
  716.    integrity database for that volume exists. Simply map another drive 
  717.    letter to that volume using only the MAP command.
  718.  
  719. 3. VDS reports an error condition on some files such as DIRSTAMP.SYS 
  720.    and NET$BIND.SYS. This is nothing unusual. These files are for use only 
  721.    by the Netware operating system. They contain certain network 
  722.    information such as the bindery. VDS recognizes these files and 
  723.    skips them, although it will report ERROR.
  724.   
  725. 3. Uninstall
  726.  
  727.    You can remove VDS from your hard drive by running the INSTALL program
  728. with the -Unistall command line option:
  729.  
  730.    C:\> C:\VDS30\INSTALL  -U  C:\VDS30   <enter>
  731.  
  732.    If you have performed a custom setup and specified a different directory
  733. name, then you should substitute that name in the line above. INSTALL checks
  734. to see if there were other files in the directory before VDS was 
  735. installed. If there were not any, it removes all the files in VDS30 
  736. directory, and then the directory itself. If there were other files, it 
  737. displays a warning message and aborts without removing any files. It is up
  738. to you to delete or keep any of those files. You need to perform a "manual"
  739. uninstall. Since VDS keeps almost all of its files in its own directory,
  740. removal is a simple procedure. You should also edit your CONFIG.SYS and
  741. AUTOEXEC.BAT to remove the lines loading VDS components. Your original
  742. CONFIG.SYS is renamed to CONFIG.VDS, and the original AUTOEXEC.BAT is
  743. renamed to AUTOEXEC.VDS during installation. You could use them as well;
  744. however, if you have installed any other programs after VDS, then they
  745. might have modified your AUTOEXEC.BAT. Be careful before you copy over the
  746. CONFIG.VDS and AUTOEXEC.VDS if that is the case.   
  747.  
  748. 4. Configuration (VDS30.INI)      
  749.  
  750.    Many of the operational parameters for VDS are specified in a file
  751. named VDS30.INI, which can be found in the VDS home directory. This is
  752. a simple text file and it can be viewed or edited easily using an ASCII text
  753. editor. Following is an explanation of each line that can be placed in this
  754. file. Lines starting with a semi-colon (;) are comments only.
  755.  
  756. ; This configuration file specifies operational parameters for VDS Pro.
  757.  
  758. ; The following is the directory where VDS.EXE is located.
  759. [HOMEDIR]
  760. C:\VDS30
  761.  
  762. ; VDS uses the directory listed under VERIFY section to find and store
  763. ; the integrity databases it maintains
  764. [VERIFY]
  765. C:\VDS30
  766.  
  767. ; Files with the following extensions are processed
  768. ; You can modify these lists. Make sure you keep the comma at the end.
  769. [EXT]
  770. SCAN = COM,EXE,SYS,OVL,BOO,
  771. VERIFY = COM,EXE,SYS,OVL,BAT,
  772.  
  773. ; Following directories/files are NOT processed
  774. ; Subdirectories to ignore. If you modify certain executable files as in
  775. ; a programming project, then you might want to exclude those directories.
  776. [IGNORE_DIR]
  777. C:\C-CODE
  778. C:\ASM-CODE
  779.  
  780. ; files to ignore
  781. ; Most people modify their AUTOEXEC and CONFIG all the time. VDS will ignore
  782. ; them by default.
  783. [IGNORE_FILE]
  784. C:\AUTOEXEC.BAT
  785. C:\CONFIG.SYS
  786.  
  787. ; Directory tree(s) are stored in the following directory
  788. ; If the directory is on a floppy, trees are not saved.
  789. [TREE]
  790. C:\VDS30
  791.  
  792. ; Messages are written to the following file
  793. ; If you change it to PRN, all messages are sent to the printer
  794. ; If you leave it blank, no audit log will be created.
  795. [REPORT]
  796. C:\VDS30\VDS-STAT.LOG
  797.  
  798. ; Message to be displayed if a virus is found
  799. [MSG]
  800. Call system administrator ASAP!
  801.  
  802. ; Operational flags
  803. [FLAGS]
  804. ; If you are checking data files, you should set QUICK_VERIFY to No.
  805. ; For programs, leave it set to Yes for faster processing.
  806. QUICK_VERIFY = Yes
  807. ; Heuristic check refers to looking for virus-like code sequences. It may
  808. ; cause some false positives.
  809. HEURISTIC_CHECK = Yes
  810. ; If a virus is found, VDS will ask you for an action if you set it to Yes.
  811. PAUSE = No
  812. ; You can eliminate most beeps by setting it to No
  813. BEEP = Yes
  814. ; Leave it set to Yes and make sure VDSCATCH.BIN device driver is loaded
  815. ; from your CONFIG.SYS.
  816. ANTI_STEALTH = Yes
  817. ; VDS will ask your permission before attempting to undo modifications to
  818. ; a program file. If it fails, nothing will be changed.
  819. AUTO_RESTORE = No
  820. ; ENTER key can be assigned to SCAN or VERIFY a file
  821. ENTER_KEY = Scan
  822.       
  823. III. Operational Overview
  824. -------------------------
  825.  
  826.    This chapter presents the basic approach VDS uses to detect and eradicate 
  827. PC viruses. 
  828.  
  829.    Protection against viruses can take many forms. The variety of anti-virus
  830. software (and even hardware) in the market is the best indication of this.
  831. After analyzing a large number of viruses and actual virus epidemics in
  832. large environments, we have implemented VDS. The main goal of our effort
  833. is to provide a reliable, unobtrusive, compatible, fast, and sophisticated 
  834. set of tools to contain the spread of viruses. A major implementation 
  835. requirement has been to hide the complexity of operation from the user, and 
  836. present a clear and easy-to-use interface.
  837.  
  838.    You will find the details of each capability provided by VDS and the 
  839. rationale behind it in the following paragraphs.   
  840.  
  841. 1. Scanning
  842.  
  843.    The most popular anti-virus tool is known as a "virus scanner". The idea
  844. behind scanning is very simple: Obtain a pattern of bytes from infected
  845. samples and look for it in possible target areas to determine if the same
  846. virus may be present. The pattern used must be chosen carefully so that it
  847. will not trigger "false positives", and cause undue panic.
  848.  
  849.    Although this idea is a very simple one, its implementation may not be
  850. as straight-forward. In the old days, there were a few dozen viruses and you
  851. could scan for them using a simple pattern matching program. This is no
  852. longer the case. The virus development accelerated in the early 90's and
  853. reached a higher level of sophistication. Viruses began to use variable
  854. encryption so that a discernible pattern cannot be extracted. Some of them
  855. went much further and included a "polymorphic engine" to defy easy 
  856. recognition attempts. Every time such a virus infects another program, it 
  857. alters the virus so that no one pattern will remain constant. Usually the 
  858. virus body is encrypted and the decryption routine is made variable.
  859.  
  860.    To cope with such viruses, scanners have also evolved. More powerful
  861. search algorithms have been designed. For example, by allowing for wildcard
  862. bytes in the pattern, a scanner can detect many encryptive viruses that do
  863. not have a polymorphic capability. This is a continual effort since there
  864. are more and more new viruses distributed all around the world. There are
  865. even some virus writing groups that take pride in not being caught by a 
  866. popular scanner product.
  867.  
  868.    Yet another concern for scanners is speed. Searching for hundreds of
  869. patterns can become very time-consuming if a simple pattern matching 
  870. algorithm is used. Fortunately, there are some advanced methods to speed
  871. up the search significantly so that it does not take hours to look for many
  872. viruses. Without such modern techniques, the war against viruses would be
  873. quite tiresome.
  874.  
  875.    VDS looks for viruses in certain areas that are known to be targets.
  876. For example, some viruses reside in the disk boot sector. To find them, one 
  877. must examine the boot sector. On hard disks, there are two separate areas 
  878. that a boot sector virus may be present: Master Boot Record (more commonly
  879. targeted) and the DOS Boot Record. Floppy diskettes have only one kind of 
  880. boot sector. 
  881.  
  882.    Program files are another common target for viruses. Since a virus must
  883. gain control of the CPU to be able to performs its task, it can attach to
  884. a program file in such a way that the virus code gets executed before the
  885. host program. After it is done, the virus can simply return control to the
  886. host, and the program operation proceeds as usual.
  887.  
  888.    To determine which files to search, VDS processes the configuration
  889. file (VDS30.INI) and reads in the section [EXT]. This section can have
  890. two entries: SCAN and VERIFY. The SCAN line lists comma-separated extensions.
  891. If VDS finds a file with one of these extensions, it will search it for
  892. viruses. You can edit VDS30.INI to add more extensions.
  893.  
  894.    VDS also scans the memory of the computer for viruses known to stay
  895. resident. Such viruses attack programs when they are accessed for execution
  896. or copying. These viruses trap the operating system requests and monitor
  897. file access. Some of them also try to hide any modifications they have made
  898. so that the user will not notice anything such as file size growth. This
  899. evasion technique is commonly referred to as "stealth".
  900.  
  901.    In some cases, you might discover a new virus that VDS does not have
  902. a pattern to search for. It is likely that the VDS decoy launcher captured   
  903. a sample for you. It is now desirable to search for this virus on your floppy
  904. diskettes and other computers as well. To speed up eradication, VDS
  905. offers an external signature file capability. You can extract a signature
  906. from a known-to-be-infected sample, and put it in the user-defined signature
  907. file. VDS will look for the signature you provided just as it is one of
  908. its internal signatures. In the meantime, you can forward us a sample for
  909. analysis, and we will update our scanner and probably get back to you with
  910. a detailed report on the new virus. You can have up to 32 signatures.
  911.  
  912.    A virus signature consists of up to 16 bytes, expressed in hex. You should
  913. not use signatures shorter than 10 bytes to reduce the possibility of a false
  914. positive. For example:
  915.  
  916.    09 A0 B8 4E 00 87 55 AA 12 34 75 06 90 90 CD 21   
  917.  
  918.    Note that some viruses use variable encryption and a simple pattern cannot
  919. be extracted. A full analysis and an algorithm to detect them must be 
  920. designed. On the other hand, many encryptive viruses can be found using a 
  921. wildcard signature. VDS can handle wildcard signatures. For variable 
  922. bytes, you should simply place two question marks instead of two hex digits. 
  923. First and the last values cannot be wildcard. Here is an example:
  924.  
  925.    09 A0 B8 4E ?? 87 55 AA 12 34 75 06 ?? ?? CD 21   
  926.  
  927.    Due to its operation, VDS requires that the extracted virus signature
  928. is extracted from a location after the virus entry point. To simplify this
  929. process, we include a utility called DUMPSIG. The result of running DUMPSIG
  930. on a file is a sequence of up to 256 bytes after the virus entry point. You
  931. should pick a 16-byte signature that does not have many repeated bytes. The
  932. signature you decide to use should be present in every infected program. 
  933. You could also use more than one signature for the same virus. After placing
  934. the signature in the external signature file, run some tests to see if VDS 
  935. finds it in two or more known-to-be-infected programs.
  936.          
  937. 2. Integrity Checking
  938.  
  939.    The second major capability VDS provides is called integrity checking.
  940. The idea behind integrity checking is as simple as scanning: Compute and
  941. record unique fingerprints for system areas and programs, and recompute and 
  942. compare them to the original fingerprints. If there are any modifications, 
  943. then VDS will investigate further by scanning the affected area for 
  944. viruses. If there is no known virus found, it will offer to restore it for 
  945. you. After the restoration attempt, VDS will verify that the restoration 
  946. is 100%.
  947.  
  948.    During installation, VDS creates the fingerprints for specified
  949. drives. Before computing the fingerprint value, it first scans the object
  950. for known viruses to make sure that it is clean. Once an integrity database
  951. is established, it is very fast to go through the disk and verify the system
  952. areas and programs against the baseline. VDS also records recovery 
  953. information it needs to have for generic disinfection.
  954.  
  955.    Since viruses must modify other existing executable objects to spread,
  956. they can be detected by integrity checkers. The strength of this technique
  957. comes from the fact that no virus specific information is needed and new
  958. viruses can be detected. There is one drawback that we must mention. What
  959. happens if the modification is legitimate such as installation of an update
  960. for a program? VDS will detect this modification, attempt to identify
  961. a known virus, and try to restore it. You have the option to override any
  962. alarms and update the fingerprint for the affected program. It requires some
  963. decision-making on your part.
  964.    
  965.    VDS also performs integrity checks on itself. If it detects a 
  966. modification, it will attempt to heal itself using the backup copy it has made
  967. during installation. VDS integrity checker verifies other components in the
  968. package such as the VDSTSR and the device drivers and restores them as well.
  969. We added this simple fault-tolerance to cope with viruses that can infect
  970. VDS components.
  971.  
  972.    File checks are performed by VDS.EXE. They include all program files
  973. with extensions specified in the configuration file VDS30.INI under
  974. section [EXT]. The entry for VERIFY lists the extensions for files that
  975. VDS should check. You can modify this list to suit your needs. For example,
  976. you could maintain integrity information for your data files as well. If
  977. you choose to do that, you must know that there are two different ways to
  978. perform integrity checks: Full and Quick. You must use the 'Full' check mode.
  979. The 'Quick' mode is applicable only to executable programs. You can change
  980. this setting in the VDS30.INI file under [FLAGS] section.
  981.       
  982.    To look for suspicious activity in a PC, VDS uses an advanced
  983. technique called "decoy launching". In simple terms, a decoy is a small
  984. executable program created and run by VDS at run-time to attract a virus
  985. active in memory. Since many memory-resident viruses infect upon execution
  986. or copying of programs, they immediately attack the decoys. VDS records
  987. this and provides you with detailed information about the type of 
  988. modifications made to the decoy such as number of bytes added, whether the
  989. program entry point is adjusted, and so on. Besides, you will have a sample
  990. of the virus to examine. Decoys do not contain much program code and make it
  991. easy to analyze a captured virus. In other words, an infected decoy will be
  992. mostly virus code and little else. 
  993.  
  994.    Decoys are launched every time you run VDS. You can also launch decoys
  995. in any directory you wish by using the F7 key. 
  996.  
  997.    We consider decoy launching capability part of integrity checking because
  998. it is a generic technique that does not depend on any specific virus. It is
  999. designed to exploit a weakness in the operation of certain types of viruses.      
  1000.                    
  1001. 3. Real-time AV Protection
  1002.  
  1003.    To prevent viruses from entering your computer, VDS includes a 
  1004. memory-resident program called VDSTSR. This program is a scanner that
  1005. accomplishes its task in a manner transparent to the user, unless it finds
  1006. a virus. It operates by monitoring operating system requests for execution
  1007. and copying of programs, and then scanning them before allowing the operation.
  1008.  
  1009.    VDSTSR also monitors warmboot attempts using the Ctrl-Alt-Del keys. If the
  1010. user is trying to warmboot the computer, VDSTSR checks to see if there is
  1011. a floppy diskette left in drive A:. If there is one, it scans the boot
  1012. sector of the floppy for viruses. After making sure that it is not an infected
  1013. diskette, VDSTSR allows the warmboot to proceed as usual.
  1014.  
  1015.    If there is a virus found in the boot sector, VDSTSR will display its
  1016. name, beep to get the user's attention, and cancel the warmboot. It will
  1017. instruct the user to remove the floppy diskette from drive A:. This capability
  1018. is very effective against boot sector viruses that can only spread if the
  1019. system is started from an infected diskette. Infamous "Michelangelo" virus 
  1020. spreads in this manner, as does the world's most common "Stoned" virus.
  1021.  
  1022.    VDSTSR always scans programs before they are run. It provides an option
  1023. to scan during copy operations. As a side effect, copy operations will be
  1024. slowed down to some extent.
  1025.  
  1026.    VDSTSR also disallows attempts to "trace" INT 21h. Some stealth viruses
  1027. patch the original DOS entry point for file access by using a method known
  1028. as "tracing". This is a feature of the Intel 80x86 microprocessors and its
  1029. purpose is to provide debugging support. Once in trace mode, the CPU calls a
  1030. programmer-defined interrupt handler after executing almost every instruction.   
  1031. Once the execution reaches the original entry point inside DOS, the virus
  1032. replaces code in that part and redirects the operating system to its code
  1033. in memory. After the virus is well-entrenched, it can implement very potent
  1034. stealth techniques to evade detection. Besides debuggers, there are very few
  1035. programs that use tracing. A few anti-virus programs in the market also
  1036. use tracing in order not to be fooled by a stealth virus!
  1037.  
  1038.    VDSCATCH.BIN includes several features to aid VDS integrity checker in its
  1039. reliable operation. It provides a clean entry point into the DOS kernel and
  1040. into the BIOS disk access. This way, VDS can bypass almost any stealth virus.
  1041.  
  1042.    In addition, VDSCATCH.BIN also prohibits tracing INT 21h and INT 13h. Many
  1043. stealth viruses exploit tracing capability of 80x86 to plant their hooks into
  1044. the system surrepticiously.
  1045.  
  1046. IV. Viruses Explained
  1047. ---------------------
  1048.       
  1049.    This chapter presents basic information about PC viruses and defines a
  1050. few buzzwords commonly used in the anti-virus field.   
  1051.    
  1052.    A virus is a program that has the ability to replicate itself by attaching
  1053. to other existing executable objects, either by logical or physical means.
  1054. In addition to its replication task, a virus may have a manipulation task in
  1055. the form of a damage routine.
  1056.  
  1057.    Researchers classify viruses in several ways. We prefer to separate the
  1058. structure of the implementation of viruses from the objects they attack.
  1059. We classify them by their "features" and "types". Here are the details:      
  1060.  
  1061. Features of PC Viruses
  1062.  
  1063.    There are several features of viruses:
  1064.             
  1065.    a. Stealth Virus: A virus that has the capability to hide the modifications
  1066.       it has made to its victims to evade detection. For example, the virus
  1067.       may hide the file size increase when the user attempts to get a 
  1068.       directory listing. Another example would be a boot sector virus that
  1069.       returns the original boot sector when a program attempts to read it.
  1070.       To accomplish such tricks, a stealth virus usually stays resident in
  1071.       memory and monitors disk access either at the DOS or BIOS level. This
  1072.       way, it can see each disk access request and alter the results to hide
  1073.       the modifications it has made. There are varying degrees of stealth
  1074.       capability. In other words, it may be possible to discover the presence
  1075.       of a virus using an alternate mechanism to examine the object that
  1076.       may have been affected.
  1077.    
  1078.    b. Dumb Virus: A virus with no stealth capability. Such a virus makes
  1079.       no attempts to conceal its presence. The most apparent change is the
  1080.       increase in file size since the virus added its code to the program
  1081.       file. An alert user can notice such a change easily.
  1082.    
  1083.    c. Encryptive Virus: A virus that keeps its code encrypted and includes
  1084.       a decryptor to restore itself. The purpose of encryption is to make
  1085.       it impossible to extract a scan string. The decryption routine is
  1086.       designed to contain variable sections so that it is not easily
  1087.       recognized. It is possible to detect such viruses using a wildcard
  1088.       pattern that matches the decryptor.
  1089.    
  1090.    d. Polymorphic Virus: A virus that keeps its code encrypted and includes
  1091.       a highly variable decryptor to restore itself. It is not possible to
  1092.       extract a wildcard scan string to recognize the decryptor. One has to
  1093.       design an appropriate algorithm to detect it. We usually analyze the
  1094.       structure of the decryptor and identify its key features, and then
  1095.       use this information to implement a detection routine.
  1096.    
  1097.    e. Multi-partite Virus: A virus that can infect both program files and
  1098.       boot sector of a disk. Dealing with such a virus can be quite a
  1099.       nuisance since the first portion of the virus gets control of the
  1100.       system even before DOS is loaded. The virus can alter the system
  1101.       vectors to implement a potent stealth mechanism, for example. Removing
  1102.       this type of virus requires that all affected areas are restored.
  1103.    
  1104. Types of PC Viruses
  1105.  
  1106.    There are two major types of PC viruses:
  1107.    
  1108.    a. MBR/BR Virus: A virus that attacks the master boot record or the DOS
  1109.       boot record of a disk. This type of virus usually moves the original
  1110.       contents of the boot sector and replaces it with its own code. Key
  1111.       data structures within the boot sector (partition table or BIOS 
  1112.       parameter block) are almost always left intact not to mess up the
  1113.       operation of DOS. A boot sector virus reserves memory for itself by 
  1114.       reducing the base memory size (e.g., 640K to 638K), and copies its
  1115.       code to the top of memory. There are a few boot sector viruses that
  1116.       remain in low memory as well. Almost all boot sector viruses monitor
  1117.       the BIOS disk interrupt (INT 13h) to spread or to hide themselves.
  1118.       Every time a disk is accessed, they get control and check if the disk
  1119.       being accessed is already infected. If not, they can infect it before
  1120.       returning control to the original interrupt handler.
  1121.    
  1122.    b. Program Infector: A virus that attaches to program files. There are
  1123.       a few subcategories for this type of viruses:      
  1124.       
  1125.       Simple Infector: A virus that modifies a program file physically to
  1126.       add its code. The program file entry point is adjusted so that the
  1127.       virus gets control when the program is executed.
  1128.       
  1129.       Companion Virus: A virus that logically inserts itself into the search
  1130.       path so that it gets control when the user attempts to run a program
  1131.       that has the same file name. The most common implementation exploits
  1132.       the fact that DOS runs a program file with a COM extension rather
  1133.       than the one with an EXE extension if both of them exist. Another 
  1134.       possibility is to insert the virus in the search path. If the user
  1135.       does not specify the exact location of the program, then DOS will use
  1136.       the path to look for it. If the virus program comes before the actual
  1137.       program in the search path, then the virus will get executed.
  1138.       
  1139.       System Infector: A virus that alters DOS system data structures
  1140.       so that it gets control instead of the program the user intends to
  1141.       run. For example, DIR-2 virus manipulates the directory entries to
  1142.       point the starting cluster to its location. When DOS reads the disk to
  1143.       load a program, the virus gets loaded. Another possibility is to insert
  1144.       the virus in a system location that DOS is known to always load.
  1145.                  
  1146.